package br.com.controleVendas.dao;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.criterion.Order;

import br.com.controleVendas.entity.Venda;
import br.com.controleVendas.entity.VendaDto;

public class VendaDao extends GenericDao<Venda, VendaDto> {
	@Override
	public VendaDto salvar(VendaDto venda) throws Exception {
		if (venda.getCdId() == null || venda.getCdId() == 0) {
			VendaDto filtroVenda = new VendaDto();
			filtroVenda.setListOrder(new ArrayList<Order>());
			filtroVenda.getListOrder().add(Order.desc("nrVenda"));

			List<VendaDto> list = getList(filtroVenda);

			VendaDto ultimaVenda = null;
			Long nrVenda = 1L;

			if (list != null && !list.isEmpty())
				ultimaVenda = getList(filtroVenda).get(0);

			if (ultimaVenda != null)
				nrVenda = ultimaVenda.getNrVenda() == null ? 1L
						: ultimaVenda.getNrVenda() + 1;
			venda.setNrVenda(nrVenda);

		}

		return super.salvar(venda);
	}
	
}
